<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--
   循环结构  :   10  hello javascript
    不同类型的循环
    JavaScript 支持不同类型的循环：
    for - 循环代码块一定的次数
    for/in - 循环遍历对象的属性
    while - 当指定的条件为 true 时循环指定的代码块
    do/while - 同样当指定的条件为 true 时循环指定的代码块
-->
<script>
    /*

       已知循环次数
    *   for (语句 1; 语句 2; 语句 3){
            被执行的代码块
        }

        语句 1 （代码块）开始前执行
        语句 2 定义运行循环（代码块）的条件
        语句 3 在循环（代码块）已被执行之后执行
        *
        *
        *
        * 循环执行流程
        *  1. 语句1    只会在程序开始时执行一次
        *  2. 语句2    判定语句   true   => 循环体  false  循环结束
        *  3. 循环体内容
        *  4. 语句3    改变计数器
        *  5. 语句2     判定语句   true   => 循环体  false  循环结束
        *  ... 依次循环语句2 ,循环体 和语句3   直到 语句2 返回结果为false 循环结束
        *
    * */
    for (var i = 0; i < 10; i++) {
        console.log("hello javascript" + i)
    }

    /*

         循环次数未知
    *   while(表达式){
    *       循环体
    *   }
    *   只要表达式结果为true 则循环会一直执行
         可能一次都不执行
    * */

    console.log("--------------------")
    // 计数器
    var j = 0
    while (j < 10) {
        console.log("hello javascript"+j)
        // 改变计数器
        j++
    }

    /*  1+2+3+4+5+...100 加和  和刚好大于1000时的 数字是哪一个  */

    var sum = 0;
    for (var k=1;k<=100;k++){
        sum+=k  //  sum = sum + k
    }
    console.log(sum)
    console.log("--------------------------")

    // 重置
    sum = 0
    var n = 0
    while (sum<=1000){
        sum+=n
        n++
    }
    console.log(sum)
    console.log(n-1)

    /*
    *   do{
    *       循环体
    *  }while(表达式)
    *   至少执行一次
    *
    * */
    console.log("-----------------------------")
    n = 0
    do {
        console.log("hello do while")
    }while (n>0)

    console.log('-----------遍历一个对象--------------')

    var student = {
        name:'lisi',
        age:20,
        sex:'男',
        score:90
    }

    // 访问对象中的属性值  对象名.属性名
    console.log("name:",student.name)
    console.log("age:",student.age)
    console.log("score:",student.score)
    console.log("sex:",student.sex)

    // 通过for循环遍历对象   var studentKey  声明变量  存储对象中的属性名  对象名[变量]
    for (var studentKey in student) {
        console.log(student[studentKey])
    }

</script>

</body>
</html>